/* * Copyright 2013 Google Inc. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.google.android.apps.dashclock.weather; import net.nurik.roman.dashclock.R; /** * A helper class representing weather data, for use with {@link WeatherExtension}. */ public class WeatherData { public static final int INVALID_TEMPERATURE = Integer.MIN_VALUE; public static final int INVALID_CONDITION = -1; public int temperature = INVALID_TEMPERATURE; public int conditionCode = INVALID_CONDITION; public int todayForecastConditionCode = INVALID_CONDITION; public String conditionText; public String forecastText; public String location; public WeatherData() { } public boolean hasValidTemperature() { return temperature > Integer.MIN_VALUE; } public static int getConditionIconId(int conditionCode) { // http://developer.yahoo.com/weather/ switch (conditionCode) { case 19: // dust or sand case 20: // foggy case 21: // haze case 22: // smoky return R.drawable.ic_weather_foggy; case 23: // blustery case 24: // windy return R.drawable.ic_weather_windy; case 25: // cold case 26: // cloudy case 27: // mostly cloudy (night) case 28: // mostly cloudy (day) return R.drawable.ic_weather_cloudy; case 29: // partly cloudy (night) case 30: // partly cloudy (day) case 44: // partly cloudy return R.drawable.ic_weather_partly_cloudy; case 31: // clear (night) case 33: // fair (night) case 34: // fair (day) return R.drawable.ic_weather_clear; case 32: // sunny case 36: // hot return R.drawable.ic_weather_sunny; case 0: // tornado case 1: // tropical storm case 2: // hurricane case 3: // severe thunderstorms case 4: // thunderstorms case 5: // mixed rain and snow case 6: // mixed rain and sleet case 7: // mixed snow and sleet case 8: // freezing drizzle case 9: // drizzle case 10: // freezing rain case 11: // showers case 12: // showers case 17: // hail case 18: // sleet case 35: // mixed rain and hail case 37: // isolated thunderstorms case 38: // scattered thunderstorms case 39: // scattered thunderstorms case 40: // scattered showers case 45: // thundershowers case 47: // isolated thundershowers return R.drawable.ic_weather_raining; case 13: // snow flurries case 14: // light snow showers case 15: // blowing snow case 16: // snow case 41: // heavy snow case 42: // scattered snow showers case 43: // heavy snow case 46: // snow showers return R.drawable.ic_weather_snow; } return R.drawable.ic_weather_clear; } }